package leetcode_1100;

/**
 *@author 周杨 
 *GrumpyBookstoreOwner_1052 给两个数组 第一个表示每个时刻进入店里的人数 下一个时刻就会离开
 *第二个数组 元素是0或者1 1表示店主很愤怒 此时顾客得不到满意 反之 顾客很满意
 *再给一个整型x 表示店主可以在x时间内都保持不愤怒 这个机会只能使用一次 问最终满意的最大顾客数量是多少
 *describe:滑动窗口 
 *2019年5月26日 下午13:40
 */
public class GrumpyBookstoreOwner_1052 {
	public int maxSatisfied(int[] customers, int[] grumpy, int X) {
        int total = 0;
        for(int i=0;i<customers.length;++i) {
        	if(grumpy[i] == 0) total += customers[i];
        }
        int right =X-1;
        int now = 0;
        for(int i=0;i<=right;++i) {
        	if(grumpy[i] == 1) now += customers[i];
        }
        int max = now;
        for(int i=X;i<customers.length;++i) {
        	if(grumpy[i-X] == 1) now -= customers[i-X];
        	if(grumpy[i] == 1) now += customers[i];
        	max = Math.max(max, now);
        }
        return total+max;
    }
}
